<template>
	<view>
		
	</view>
</template>

<script setup>
	/*map() 方法，对数组遍历不破坏原数组，将会创建一个新数组，按照原始数组元素顺序依次执行给定的函数，
	map方法非常适合用于处理数组中的每个元素并生成新的数组。
	*/
   
	//语法：map(callbackFn)
	//callbackFn中参数
	//element 数组中当前正在处理的元素。
	//index 正在处理的元素在数组中的索引。
	//array 调用了 map() 的数组本身。
	
	//1.将数组内每个元素×2后，获取新数组
	let arrs = [1,2,3,4];
	let newArr = arrs.map(item=>item*2)
	console.log(newArr);
	//[2,4,6,8]
	
	//2.将数组对象内每个元素的名称拿出来，作为一个新数组
	let arrs1 = [{name:"华为",price:6999},{name:"苹果",price:9888},{name:"小米",price:4999}]
	let newArr1 = arrs1.map(item=>{
		return {name:item.name}
	})
	//let newArr1 = arrs1.map(item=>({name:item.name}))
	console.log(newArr1);
	// [
	//     {
	//         "name": "华为"
	//     },
	//     {
	//         "name": "苹果"
	//     },
	//     {
	//         "name": "小米"
	//     }
	// ]
	
	//3.将数组中原来的name不做任何改变，原有price:6999改为price:“6999元”，并且新增number属性值为888
	let arrs3 = [{name:"华为",price:6999},{name:"苹果",price:9888},{name:"小米",price:4999}]
	let newArr3 = arrs3.map(item=>{
		return {
			...item,
			price:item.price+"元",
			number:888
		}
	})
	//let newArr3 = arrs3.map(item=>({...item,price:item.price+"元",number:888}))
	console.log(newArr3);
	
	//5.将异步请求map到新数组中，使用Promise.all同时处理多个Promise
	//Promise.all请求，会同时发送请求，会节省很多的时间
	let arrs4 = [1,2,3];
	let promise = arrs4.map(async item=>{
		const {data} = await uni.request({
			url:"http://jsonplaceholder.typicode.com/posts/"+item
		})
		return data
	})
	Promise.all(promise).then(res=>{
		console.log(res)
	})
	
</script>

<style lang="scss" scoped>
	       
</style>
